/*
 * 
 * @Date: 2023-09-12 15:41:36
 * 
 * @LastEditTime: 2024-01-30 22:47:57
 * @FilePath: /main/apps/fe/mini/src/shared/api/request.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD
 */
import Taro from '@tarojs/taro';
/**
 * 封封微信的的request
 */
export function request(url, data = {}, method = "GET") {
  const token = Taro.getStorageSync('token') || ''
  return new Promise(function (resolve, reject) {
    Taro.request({
      url: url,
      data: data,
      method: method,
      header: {
        'Content-Type': 'application/json',
        'Authorization': token
      },
      success: function (res) {
        if (res.statusCode == 200) {
          // if (res.data.errno == 501) {
          //   // 清除登录相关内容
          //   try {
          //     Taro.removeStorageSync('userInfo');
          //     Taro.removeStorageSync('token');
          //   } catch (e) {
          //     // Do something when catch error
          //   }
          // } else if(res.data.errno == 0) {
          //   resolve(res.data.data);
          // } else {
          //   // Taro.showModal({
          //   //   title: '错误信息',
          //   //   content: res.data.errmsg,
          //   //   showCancel: false
          //   // });
          //   //showErrorToast(res.data.errmsg);
          //   reject(res.data.errmsg);
          // }
          if (res.data.code === 1 && !res.data.success && res.data.msg.includes('用户不存在')) {
            Taro.clearStorage()
            Taro.showToast({
              title: '登录已过期，即将为您跳转登录页面',
              icon: 'none',
              duration: 1000
            })
            setTimeout(() => {
              Taro.navigateTo({
                url: '/user/pages/login/login'
              })
            }, 1000)
            reject(res.data.msg)
          }
          resolve(res.data)
        } else {
          reject(res.errMsg);
        }

      },
      fail: function (err) {
        reject(err)
      }
    })
  });
}

request.get = (url, data) => {
  return request(url, data, 'GET');
}

request.post = (url, data) => {
  return request(url, data, 'POST');
}

